package com.ym.medical.service;

import com.ym.core.utils.tkmybatis.IBaseSV;
import com.ym.medical.domain.entity.SysSignEntity;
import com.ym.medical.domain.param.SysSignQueryParam;
import com.ym.medical.domain.param.SysSignUpdateParam;
import com.ym.medical.domain.vo.SysSignListPcVO;
import com.ym.medical.enums.OrgEnum;
import com.ym.medical.enums.OrgSignEnum;

import java.util.List;
import java.util.Map;

/**
 * 系统签名表Service接口
 *
 * @author ym
 * @date 2020-08-17
 */
public interface ISysSignSV extends IBaseSV<SysSignEntity> {

	/**
	 * 查询系统签名表列表
	 *
	 * @param queryParam 系统签名表 查询对象
	 * @return 系统签名表集合
	 */
	List<SysSignListPcVO> selectListPC(SysSignQueryParam queryParam);


	/**
	 * 新增系统签名表
	 *
	 * @param updateParam 系统签名表 新增对象
	 * @return 结果
	 */
	Long insertPC(SysSignUpdateParam updateParam);

	/**
	 * 修改系统签名表
	 *
	 * @param updateParam 系统签名表 修改参数
	 * @return 结果
	 */
	int updateByIdPC(SysSignUpdateParam updateParam);

	/**
	 * 根据用户ID生成签名规则
	 *
	 * @param orgEnum 签名所属
	 * @param userId
	 * @return
	 */
	SysSignEntity createSign(OrgSignEnum orgEnum);



	/**
	 * 获取请求交易头信息
	 * @param reqBody
	 * @return
	 */
	Map<String, String> getTdSignHeaders(String reqBody);
	/**
	 * 根据appkey查找
	 *
	 * @param appKey
	 * @return
	 */
	SysSignEntity findSysSignByAppKey(String appKey);
	/**
	 * 根据用户ID生成签名规则
	 *
	 * @param orgEnum 签名所属
	 * @param userId
	 * @return
	 */
    SysSignEntity createSignByUser(OrgEnum doctors, Long userId);
}
